﻿Imports System.Data
Imports CrystalDecisions.Shared
Imports System.Data.OleDb
Imports System
Imports System.Globalization
Partial Class Interfaz_ModuloPlanificacion_PopUpPlanificacion3
    Inherits System.Web.UI.Page

    Dim CL As Logica.ModuloPlanificacion.ControladorLogica
    Dim CLAdmin As Logica.ModuloAdministracion.ControladorLogica
    Dim dtDatosPlanificacion As New DataTable

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        CL = Logica.ModuloPlanificacion.ControladorLogica.getInstance
        CLAdmin = Logica.ModuloAdministracion.ControladorLogica.getInstance

        If Not Page.IsPostBack Then
            Try

                dtDatosPlanificacion.Columns.Add(New DataColumn("ESTACIONES"))
                dtDatosPlanificacion.Columns.Add(New DataColumn("TIEMPO"))
                dtDatosPlanificacion.Columns.Add(New DataColumn("OBSERVACION"))
                obtenerPlanificacion_M3()
                CargarEstaciones()
                Me.Label1.Text = DirectCast(CL.ObtenerEstaciones(Me.DdlEstaciones.SelectedValue, 2).Item(0), Estacion).Descripcion
                Me.GridEditarPlanificacion3.DataBind()
                Me.GridEditarPlanificacion3.DataSource = Me.dtDatosPlanificacion
            Catch ex As Exception
                Throw ex
            End Try

            'prueba()
            LlenarCamposAnteriores()
        Else
        End If
        Me.GridEditarPlanificacion3.DataSource = dtDatosPlanificacion
       
    End Sub

    Public Sub prueba()
        For i As Integer = 0 To 10
            Dim drDatos As DataRow = dtDatosPlanificacion.NewRow

            drDatos.Item("ESTACIONES") = i + 1
            drDatos.Item("TIEMPO") = "TIEMPO" & i + 1
            drDatos.Item("OBSERVACION") = "OBSERVACION " & i + 1

            dtDatosPlanificacion.Rows.Add(drDatos)

        Next
        Me.GridEditarPlanificacion3.DataSource = dtDatosPlanificacion
        Me.GridEditarPlanificacion3.DataBind()
    End Sub

#Region "Insertar"
    Public Sub ingresarPm3()
        If Me.ValidarIngreso Then
            Dim pm3 As Planificacion_M3 = New Planificacion_M3(Me.DdlEstaciones.SelectedValue, Me.TxtTiempo.Text, Me.TxtObservacion.Text, Me.LblId.Text)
            CL.ingresarPlanificacionM3(pm3)
            Me.LblMensaje.Text = "Los Datos Han Sido Ingresados Exitosamente"
            Me.LblMensaje.ForeColor = Drawing.Color.Blue
            LimpiarCampos()
        Else
            Me.LblMensaje.Text = "Para Ingresar Necesita Completar Todos los Datos"
            Me.LblMensaje.ForeColor = Drawing.Color.Red
        End If
    End Sub
#End Region

#Region "Utilidades"

    Public Sub LlenarCamposAnteriores()

        Dim array As ArrayList = CL.ObtenerPlanificacionM2(Request("Nplan3"), 2)
        Dim pm2 As Planificacion_M2 = DirectCast(array.Item(0), Planificacion_M2)
        Dim pm1 As Planificacion_M1 = DirectCast(CL.ObtenerPlanificacionM1(pm2.Fk_plani_m1, 2).Item(0), Planificacion_M1)
        Dim pm As Planificacion = DirectCast(CL.ObtenerPlanificacionPrincipal(pm1.Fk_planificacion, 3).Item(0), Planificacion)
        Dim presu As ArrayList = Me.CLAdmin.ObtenerPresupuestoCriterio(DirectCast(CL.ObtenerOT(pm.Ot_fk, 2).Item(0), OrdenTrabajo).FkPresupuesto)

        Me.LblNPlanificacion.Text = pm.Id
        Me.LblNOt.Text = pm.Ot_fk & " - " & DirectCast(presu.Item(0), Presupuesto).atencion

        Me.LblMarca.Text = pm2.marca
        Me.LblDescripcion.Text = DirectCast(CL.ObtenerBibliotecaTecnica(pm2.Descripcion, 2).Item(0), Biblioteca_Tecnica).Nombre
        Me.LblCantidad.Text = pm2.Cantidad
        Me.LblLargo.Text = pm2.Largo
        Me.LblAncho.Text = pm2.Ancho
        Me.LblObservacion.Text = pm2.Observacion
        Me.LblId.Text = pm2.id


    End Sub

    Public Sub Mensaje(ByVal msg As String)
        Dim alertScript As String = "<script language=JavaScript runat=server>"
        alertScript &= "alert('" & msg & "');"
        alertScript &= "</script>"
        ClientScript.RegisterClientScriptBlock(Page.GetType(), "clientScrip", alertScript)
    End Sub

    Private Sub FuncionAbrirVentana(ByVal url As String)
        ClientScript.RegisterStartupScript(Me.GetType(), "AbrirVentana;", "window.open(" & url & ",'','width=550,height=600,menubar=1,resizable=1,scrollbars=1');", True)
    End Sub

    Public Sub obtenerPlanificacion_M3()
        Me.dtDatosPlanificacion.Clear()
        Dim array As ArrayList = CL.ObtenerPlanificacionM3(Request("Nplan3"), 3)

        If array.Count > 0 Then

            For i As Integer = 0 To array.Count - 1
                Dim drDatos As DataRow = dtDatosPlanificacion.NewRow
                Dim pm3 As Planificacion_M3 = array.Item(i)

                drDatos.Item("ESTACIONES") = DirectCast(CL.ObtenerEstaciones(pm3.Estacion, 2).Item(0), Estacion).Estacion
                drDatos.Item("TIEMPO") = pm3.Tiempo & " min"
                drDatos.Item("OBSERVACION") = pm3.Observacion


                dtDatosPlanificacion.Rows.Add(drDatos)

            Next
            Me.GridEditarPlanificacion3.DataSource = dtDatosPlanificacion
            Me.GridEditarPlanificacion3.DataBind()

            Me.LblMensaje.Text = ("Los Datos han Sido Cargados Exitosamente.")
            Me.LblMensaje.ForeColor = Drawing.Color.Blue
        Else
            Me.LblMensaje.Text = ("La Planificación No cuenta Con Marcas Creadas.")
            Me.LblMensaje.ForeColor = Drawing.Color.Red
        End If

    End Sub

    Public Sub CargarEstaciones()
        Me.DdlEstaciones.Items.Clear()
        Dim estaciones As ArrayList = CL.ObtenerEstaciones("", 1)
        If estaciones.Count > 0 Then
            For i As Integer = 0 To estaciones.Count - 1
                Dim est As Estacion = estaciones.Item(i)
                Dim it As ListItem = New ListItem(est.Estacion, est.ID)
                Me.DdlEstaciones.Items.Add(it)
            Next
        End If
    End Sub

    Public Function ValidarIngreso() As Boolean
        If Me.TxtObservacion.Text <> "" And Me.TxtTiempo.Text <> "" Then
            Return True
        End If
        Return False
    End Function

    Public Sub limpiarCampos()
        Me.TxtTiempo.Text = String.Empty
        Me.TxtObservacion.Text = String.Empty
    End Sub

#End Region

#Region "Eventos"

    Protected Sub GridItems_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridEditarPlanificacion3.RowCommand
        Try
            Dim accion As String = e.CommandName.ToString
            Dim url As String = ""
            Dim index As String = CInt(e.CommandArgument)
            Dim subProy As String = Me.GridEditarPlanificacion3.Rows(index).Cells(0).Text

            If accion = "EditarProgreso" Then
                url = """PopUpProgreso.aspx?pNumFila=" & subProy & """"
                FuncionAbrirVentana(url)
            End If
        Catch ex As Exception
            Me.Mensaje(ex.ToString)
        End Try
    End Sub

#End Region
    
    Protected Sub DdlEstaciones_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DdlEstaciones.SelectedIndexChanged
        Me.Label1.Text = DirectCast(CL.ObtenerEstaciones(Me.DdlEstaciones.SelectedValue, 2).Item(0), Estacion).Descripcion
    End Sub

    Protected Sub BtnIngresar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnIngresar.Click
        ingresarPm3()
        Me.dtDatosPlanificacion.Clear()
        dtDatosPlanificacion.Columns.Add(New DataColumn("ESTACIONES"))
        dtDatosPlanificacion.Columns.Add(New DataColumn("TIEMPO"))
        dtDatosPlanificacion.Columns.Add(New DataColumn("OBSERVACION"))
        obtenerPlanificacion_M3()
    End Sub
End Class
